package OnTap;

import java.util.Scanner;

import javax.print.attribute.standard.MediaSize.Other;

public class Bai15 {

	/**
	 * @param args
	 */
	public static void Input(int[][] a, int m, int n){
		Scanner s = new Scanner (System.in);
		for(int i = 0; i < m; i++){
			for(int j = 0; j < n; j++){
				System.out.print("A[" + (i + 1) + "][" + (j + 1) + "] = ");
				a[i][j] = s.nextInt();
			}
		}
	}
	
	public static void Output(int[][] a, int m, int n){
		for(int i = 0; i < m; i++){
			for(int j = 0; j < n; j++){
				System.out.print(a[i][j] + "  ");
			}
			System.out.println();
		}
	}
	
	public static void Tong(int[][] a, int[][] b, int m, int n){
		int[][] c;
		c = new int[m][n];
		for( int i = 0; i < m; i++)
			for(int j = 0; j < n; j++)
				c[i][j] = a[i][j] + b[i][j];
		Output(c, m, n);
	}
	
	public static void Hieu(int[][] a, int[][] b, int m, int n){
		int[][] c;
		c = new int[m][n];
		for( int i = 0; i < m ;i++)
			for(int j = 0; j < n; j++)
				c[i][j]=a[i][j] - b[i][j];
		Output(c, m, n);
	}
	
	public static void Tich(int[][] a, int[][] b, int ma, int na, int mb, int nb){
		int[][] resuft;
		if(mb == na){
			resuft = new int[ma][nb];
			for(int i = 0; i < ma; i++)
				for(int j = 0; j < nb; j++)
					for(int k = 0; k < na; k++)
						resuft[i][j] += a[i][k] + b[k][j];
			Output(resuft, ma, nb);
		}
		else System.out.print("Không thực hiện được! Cột ma trận thứ nhất phải bằng cột ma trận thứ hai!");
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner s = new Scanner (System.in);
		System.out.print("Ma trận thứ nhất có dòng = ");
		int ma = s.nextInt();
		System.out.print("cột = ");
		int na = s.nextInt();
		int[][] A = new int[ma][na];
		Input(A, ma, na);
		System.out.print("\nMa trận thứ hai có dòng = ");
		int mb = s.nextInt();
		System.out.print("cột = ");
		int nb = s.nextInt();		
		int[][] B = new int[mb][nb];
		Input(B, mb, nb);
		
		System.out.println("KẾT QUẢ:\n");
		System.out.print("Ma trận thứ nhất:\n");
		Output(A, ma, na);
		System.out.print("Ma trận thứ hai:\n");
		Output(B, mb, nb);
		if(ma == mb && na == nb){
			System.out.println("Tổng: \n");
			Tong(A, B, ma, na);
			System.out.println("Hiệu: \n");
			Hieu(A, B, ma, na);
		}
		else System.out.print("Không thể tính tổng vì 2 ma trận không cùng cấp!");
		System.out.println("Tích: \n");
		Tich(A,B,ma,na,mb,nb);
		
	}

}
